home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / c / genmo112.lha / GTB-Modula / Modules / FileOut.mod < prev    next >
Encoding:
Modula Implementation  |  1993-09-28  |  2.5 KB  |  137 lines

  1. IMPLEMENTATION MODULE FileOut;
  2.  
  3. (*
  4.  * -------------------------------------------------------------------------
  5.  *
  6.  *    :Module.    FileOut.mod
  7.  *    :Contents.    Ausgaben wie mit InOut aber auf eine Datei.
  8.  
  9.  *    :Author.    Reiner Nix
  10.  *    :Address.    Geranienhof 2, 5000 Köln 71 Seeberg
  11.  *    :Address.    rbnix@pool.informatik.rwth-aachen.de
  12.  *    :Copyright.    Public Domain
  13.  *    :Language.    Modula-2
  14.  *    :Translator.    M2Amiga A-L V4.2d
  15.  *    :History.    V1.0    21.11.90    M2Amiga V3.3d
  16.  *    :History.    V1.1    13.08.91    M2Amiga V4.0d
  17.  *    :History.    V1.2    23.08.93    erweitert um WriteHex 
  18.  *
  19.  * -------------------------------------------------------------------------
  20.  *)
  21.  
  22. FROM    SYSTEM        IMPORT    ADR;
  23. FROM    ASCII        IMPORT    lf, cr, sp;
  24. FROM    String        IMPORT    Length;
  25. FROM    Conversions    IMPORT    ValToStr;
  26. FROM    RealConversions    IMPORT    RealToStr;
  27. FROM    FileSystem    IMPORT    File,
  28.                 WriteChar, WriteBytes;
  29.  
  30.  
  31. PROCEDURE WriteLn    (VAR file    :File);
  32.  
  33. BEGIN
  34. WriteChar (file, lf)
  35. END WriteLn;
  36.  
  37.  
  38. PROCEDURE Write        (VAR file    :File;
  39.              char        :CHAR);
  40.  
  41. BEGIN
  42. WriteChar (file, char)
  43. END Write;
  44.  
  45.  
  46. PROCEDURE WriteString    (VAR file    :File;
  47.              string        :ARRAY OF CHAR);
  48.  
  49. VAR    actual    :LONGINT;
  50.  
  51. BEGIN
  52. WriteBytes (file, ADR (string), Length (string), actual)
  53. END WriteString;
  54.  
  55.  
  56. PROCEDURE WriteCard    (VAR file    :File;
  57.              number        :LONGCARD; n    :CARDINAL);
  58.  
  59. VAR    string        :ARRAY[1..12] OF CHAR;
  60.     error        :BOOLEAN;
  61.  
  62. BEGIN
  63. ValToStr (number, FALSE, string, 10, n, sp, error);
  64. IF NOT error THEN
  65.   WriteString (file,string)
  66. ELSE
  67.   WriteString (file,"FEHLER")
  68.   END
  69. END WriteCard;
  70.  
  71.  
  72. PROCEDURE WriteInt    (VAR file    :File;
  73.              number        :LONGINT; n    :CARDINAL);
  74.  
  75. VAR    string        :ARRAY[1..12] OF CHAR;
  76.     error        :BOOLEAN;
  77.  
  78. BEGIN
  79. ValToStr (number, TRUE, string, 10, n, sp, error);
  80. IF NOT error THEN
  81.   WriteString (file,string)
  82. ELSE
  83.   WriteString (file,"FEHLER")
  84.   END
  85. END WriteInt;
  86.  
  87.  
  88. PROCEDURE WriteHex    (VAR file    :File;
  89.              number        :LONGINT; n    :CARDINAL);
  90.  
  91. VAR    string        :ARRAY[1..12] OF CHAR;
  92.     error        :BOOLEAN;
  93.  
  94. BEGIN
  95. ValToStr (number, TRUE, string, 16, n, " ", error);
  96. IF NOT error THEN
  97.   WriteString (file,string)
  98. ELSE
  99.   WriteString (file,"FEHLER")
  100.   END
  101. END WriteHex;
  102.  
  103.  
  104. PROCEDURE WriteBool    (VAR file    :File;
  105.              boolean    :BOOLEAN);
  106.  
  107. BEGIN
  108. IF boolean THEN
  109.   WriteString (file, "TRUE")
  110. ELSE
  111.   WriteString (file, "FALSE")
  112.   END
  113. END WriteBool;
  114.  
  115.  
  116. PROCEDURE WriteReal    (VAR file    :File;
  117.              number        :REAL; m, n    :CARDINAL);
  118.  
  119. VAR    string        :ARRAY[1..20] OF CHAR;
  120.     error        :BOOLEAN;
  121.  
  122. BEGIN
  123. IF m > 20 THEN
  124.   m := 20;
  125.   IF n > m THEN n := 18 END
  126.   END;
  127. RealToStr (number, string, m, n, FALSE, error);
  128. IF NOT error THEN
  129.   WriteString (file, string)
  130. ELSE
  131.   WriteString (file, "FEHLER")
  132.   END
  133. END WriteReal;
  134.  
  135.  
  136. END FileOut.
  137.